package com.ryskoo.permission.menu.repository;

import com.ryskoo.framework.core.repository.IBasicRepository;
import com.ryskoo.permission.menu.domain.MenuPO;

import java.util.List;

public interface IMenuRepository extends IBasicRepository<MenuPO> {
    /**
     * 根据菜单类型和父菜单查询菜单
     *
     * @param menuType
     * @return
     */
    List<MenuPO> getMenus(String menuType, String parentId);

    /**
     * 根据菜单类型和父菜单查询菜单的uuid
     *
     * @param menuType
     * @return
     */
    List<String> getMenuUuids(String menuType, String parentId);

    /**
     * 根据管理员id获取此管理员可见的菜单列表
     *
     * @param managerId 管理员id
     * @param menuType  菜单类型  0：平台菜单  1：商户菜单
     * @return 菜单列表 {@link List}&lt;{@link MenuPO}&gt;
     */
    List<MenuPO> getMenuByManagerId(String managerId, int menuType);

    /**
     * 根据角色id获取此管理员可见的菜单列表
     *
     * @param roleId   角色id
     * @param menuType 菜单类型  0：平台菜单  1：商户菜单
     * @return 菜单列表 {@link List}&lt;{@link MenuPO}&gt;
     */
    List<MenuPO> getMenuByRoleId(String roleId, int menuType);
}
